import UIKit

//
@available(iOS 13.0, *)
extension QKC where AA :UITabBarItemStateAppearance {
	/// Text attributes to be used for rendering title text. If the font or color are unspecified, appropriate defaults are supplied.
    open func titleTextAttributes_qk_s(_ titleTextAttributes:  [NSAttributedString.Key : Any]) -> QKC<AA,YY,ZZ, [NSAttributedString.Key : Any]>{
		return link(next: titleTextAttributes).then_QK { $0.value.titleTextAttributes = titleTextAttributes }
	}
    open func titleTextAttributes_qk_g() -> QKC<AA,YY,ZZ, [NSAttributedString.Key : Any]>{
		 self +^ self.value.titleTextAttributes
	}

	/// An offset to apply to the UITabBarItem's title position
    open func titlePositionAdjustment_qk_s(_ titlePositionAdjustment:  UIOffset) -> QKC<AA,YY,ZZ, UIOffset>{
		return link(next: titlePositionAdjustment).then_QK { $0.value.titlePositionAdjustment = titlePositionAdjustment }
	}
    open func titlePositionAdjustment_qk_g() -> QKC<AA,YY,ZZ, UIOffset>{
		 self +^ self.value.titlePositionAdjustment
	}

	/// The color to use for item icons. If not specified, a suitable color will be derived.
     open func iconColor_qk_s(_ iconColor:  UIColor?) -> QKC<AA,YY,ZZ, UIColor?>{
		return link(next: iconColor).then_QK { $0.value.iconColor = iconColor }
	}
     open func iconColor_qk_g() -> QKC<AA,YY,ZZ, UIColor?>{
		 self +^ self.value.iconColor
	}

	/// An offset to apply to the badge's position
    open func badgePositionAdjustment_qk_s(_ badgePositionAdjustment:  UIOffset) -> QKC<AA,YY,ZZ, UIOffset>{
		return link(next: badgePositionAdjustment).then_QK { $0.value.badgePositionAdjustment = badgePositionAdjustment }
	}
    open func badgePositionAdjustment_qk_g() -> QKC<AA,YY,ZZ, UIOffset>{
		 self +^ self.value.badgePositionAdjustment
	}

	/// The color to use for the badge background
     open func badgeBackgroundColor_qk_s(_ badgeBackgroundColor:  UIColor?) -> QKC<AA,YY,ZZ, UIColor?>{
		return link(next: badgeBackgroundColor).then_QK { $0.value.badgeBackgroundColor = badgeBackgroundColor }
	}
     open func badgeBackgroundColor_qk_g() -> QKC<AA,YY,ZZ, UIColor?>{
		 self +^ self.value.badgeBackgroundColor
	}

	/// Text attributes to be used for rendering badge text. If the font and color are unspecified, appropriate defaults are supplied.
    open func badgeTextAttributes_qk_s(_ badgeTextAttributes:  [NSAttributedString.Key : Any]) -> QKC<AA,YY,ZZ, [NSAttributedString.Key : Any]>{
		return link(next: badgeTextAttributes).then_QK { $0.value.badgeTextAttributes = badgeTextAttributes }
	}
    open func badgeTextAttributes_qk_g() -> QKC<AA,YY,ZZ, [NSAttributedString.Key : Any]>{
		 self +^ self.value.badgeTextAttributes
	}

	/// An offset to apply to the badge's title position
    open func badgeTitlePositionAdjustment_qk_s(_ badgeTitlePositionAdjustment:  UIOffset) -> QKC<AA,YY,ZZ, UIOffset>{
		return link(next: badgeTitlePositionAdjustment).then_QK { $0.value.badgeTitlePositionAdjustment = badgeTitlePositionAdjustment }
	}
    open func badgeTitlePositionAdjustment_qk_g() -> QKC<AA,YY,ZZ, UIOffset>{
		 self +^ self.value.badgeTitlePositionAdjustment
	}

}

@available(iOS 13.0, *)
extension QKC where AA :UITabBarItemAppearance {
	/// The appearance when the tab bar item is in the normal state
    open func normal_qk_g() -> QKC<AA,YY,ZZ, UITabBarItemStateAppearance >{
		 self +^ self.value.normal
	}

	/// The appearance when the tab bar item is in the selected state
    open func selected_qk_g() -> QKC<AA,YY,ZZ, UITabBarItemStateAppearance >{
		 self +^ self.value.selected
	}

	/// The appearance when the tab bar item is in the disabled state
    open func disabled_qk_g() -> QKC<AA,YY,ZZ, UITabBarItemStateAppearance >{
		 self +^ self.value.disabled
	}

	/// The appearance when the tab bar item is in the focused state
    open func focused_qk_g() -> QKC<AA,YY,ZZ, UITabBarItemStateAppearance >{
		 self +^ self.value.focused
	}

	/// Reset this appearance to that of the given layout.
    open func configureWithDefault_qk_f(for style: UITabBarItemAppearance.Style) -> QKC<AA,YY,ZZ, UITabBarItemAppearance.Style>{
		 self +^ self.value.configureWithDefault(for:style) +^ style
	}

}

@available(iOS 13.0, *)
extension QKC where AA :UITabBarAppearance {
	/// The appearance for the stacked tab bar item layout
     open func stackedLayoutAppearance_qk_s(_ stackedLayoutAppearance:  UITabBarItemAppearance) -> QKC<AA,YY,ZZ, UITabBarItemAppearance>{
		return link(next: stackedLayoutAppearance).then_QK { $0.value.stackedLayoutAppearance = stackedLayoutAppearance }
	}
     open func stackedLayoutAppearance_qk_g() -> QKC<AA,YY,ZZ, UITabBarItemAppearance>{
		 self +^ self.value.stackedLayoutAppearance
	}

	/// The appearance for the inline tab bar item layout
     open func inlineLayoutAppearance_qk_s(_ inlineLayoutAppearance:  UITabBarItemAppearance) -> QKC<AA,YY,ZZ, UITabBarItemAppearance>{
		return link(next: inlineLayoutAppearance).then_QK { $0.value.inlineLayoutAppearance = inlineLayoutAppearance }
	}
     open func inlineLayoutAppearance_qk_g() -> QKC<AA,YY,ZZ, UITabBarItemAppearance>{
		 self +^ self.value.inlineLayoutAppearance
	}

	/// The appearance for the compact inline tab bar item layout
     open func compactInlineLayoutAppearance_qk_s(_ compactInlineLayoutAppearance:  UITabBarItemAppearance) -> QKC<AA,YY,ZZ, UITabBarItemAppearance>{
		return link(next: compactInlineLayoutAppearance).then_QK { $0.value.compactInlineLayoutAppearance = compactInlineLayoutAppearance }
	}
     open func compactInlineLayoutAppearance_qk_g() -> QKC<AA,YY,ZZ, UITabBarItemAppearance>{
		 self +^ self.value.compactInlineLayoutAppearance
	}

	/// A color to use for the selectionIndicator, its specific behavior depends on the value of selectionIndicatorImage. If selectionIndicatorImage is nil, then the selectionIndicatorTintColor is used to color the UITabBar's default selection indicator; a nil or clearColor selectionIndicatorTintColor will result in no indicator. If selectionIndicatorImage is a template image, then the selectionIndicatorTintColor is used to tint the image; a nil or clearColor selectionIndicatorTintColor will also result in no indicator. If the selectionIndicatorImage is not a template image, then it will be rendered without respect to the value of selectionIndicatorTintColor.
     open func selectionIndicatorTintColor_qk_s(_ selectionIndicatorTintColor:  UIColor?) -> QKC<AA,YY,ZZ, UIColor?>{
		return link(next: selectionIndicatorTintColor).then_QK { $0.value.selectionIndicatorTintColor = selectionIndicatorTintColor }
	}
     open func selectionIndicatorTintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor?>{
		 self +^ self.value.selectionIndicatorTintColor
	}

	/// An image that is rendered behind the selected UITabBarItem and above the tab bar's background. Modified by selectionIndicatorTintColor when appropriate.
    open func selectionIndicatorImage_qk_s(_ selectionIndicatorImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: selectionIndicatorImage).then_QK { $0.value.selectionIndicatorImage = selectionIndicatorImage }
	}
    open func selectionIndicatorImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.selectionIndicatorImage
	}

	/// Determines how items in the tab bar lay out in the stacked item layout
    open func stackedItemPositioning_qk_s(_ stackedItemPositioning:  UITabBar.ItemPositioning) -> QKC<AA,YY,ZZ, UITabBar.ItemPositioning>{
		return link(next: stackedItemPositioning).then_QK { $0.value.stackedItemPositioning = stackedItemPositioning }
	}
    open func stackedItemPositioning_qk_g() -> QKC<AA,YY,ZZ, UITabBar.ItemPositioning>{
		 self +^ self.value.stackedItemPositioning
	}

    open func stackedItemWidth_qk_s(_ stackedItemWidth:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: stackedItemWidth).then_QK { $0.value.stackedItemWidth = stackedItemWidth }
	}
    open func stackedItemWidth_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.stackedItemWidth
	}

    open func stackedItemSpacing_qk_s(_ stackedItemSpacing:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: stackedItemSpacing).then_QK { $0.value.stackedItemSpacing = stackedItemSpacing }
	}
    open func stackedItemSpacing_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.stackedItemSpacing
	}

}

